package com.ynet.middleground.user.bean;

import com.ynet.core.common.BaseReqObj;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;

/**
 * @program: 2019-10-12_userCenter
 * @description: 发起随机金额打款认证
 * @author: DaiGaoLe
 * @create: 2019-11-13 15:11
 **/
@Data
@ApiModel(value = "发起随机金额打款认证", description = "发起随机金额打款认证")
public class TransferRandomAmountReq extends BaseReqObj {

    private static final long serialVersionUID = -7981400056560011351L;
    /**
     * 认证流程Id path 是 string
     */
    @ApiModelProperty(value = "认证流程Id path 是 string", notes = "认证流程Id path 是 string", dataType = "String", required = true)
    @NotEmpty(message = "认证流程Id不能为空！")
    private String flowId;

    /**
     * 对公账号开户行总行名称 body 是 string
     */
    @ApiModelProperty(value = " 对公账号开户行总行名称 body 是 string", notes = " 对公账号开户行总行名称 body 是 string", dataType = "String", required = true)
    @NotEmpty(message = "对公账号开户行总行名称不能为空")
    private String bank;

    /**
     * 对公账号开户行所在省份名称 body 是 string
     */
    @ApiModelProperty(value = "对公账号开户行所在省份名称 body 是 string", notes = "对公账号开户行所在省份名称 body 是 string", dataType = "String", required = true)
    @NotEmpty(message = "对公账号开户行总行名称不能为空")
    private String province;

    /**
     * 对公账号开户行所在城市名称 body 是 string
     */
    @ApiModelProperty(value = " 对公账号开户行所在城市名称 body 是 string", notes = " 对公账号开户行所在城市名称 body 是 string", dataType = "String", required = true)
    @NotEmpty(message = "对公账号开户行所在城市名称不能为空")
    private String city;

    /**
     * 对公账号开户行支行名称全称 body 是 string
     */
    @ApiModelProperty(value = "对公账号开户行支行名称全称 body 是 string", notes = "对公账号开户行支行名称全称 body 是 string", dataType = "String", required = true)
    @NotEmpty(message = "对公账号开户行支行名称全称不能为空")
    private String subbranch;

    /**
     * 银行卡号信息 body 是 string
     */
    @ApiModelProperty(value = " 银行卡号信息 body 是 string", notes = " 银行卡号信息 body 是 string", dataType = "String", required = true)
    @NotEmpty(message = "银行卡号信息不能为空")
    private String cardNo;

    /**
     * 联行号（名词解释） 可通过 查询打款银行信息 获取，或第三方数据库获取 body 是 string
     */
    @ApiModelProperty(value = "联行号（名词解释） 可通过 查询打款银行信息 获取，或第三方数据库获取 body 是 string", notes = "联行号（名词解释） 可通过 查询打款银行信息 获取，或第三方数据库获取 body 是 string", dataType = "String", required = true)
    @NotEmpty(message = "联行号（名词解释） 可通过 查询打款银行信息 获取，或第三方数据库获取不能为空")
    private String cnapsCode;

    /**
     * 业务方业务上下文id，如果不填则取发起实名时的contextId body 否 string
     */
    @ApiModelProperty(value = "业务方业务上下文id，如果不填则取发起实名时的contextId body 否 string", notes = "业务方业务上下文id，如果不填则取发起实名时的contextId body 否 string", dataType = "String")
    private String contextId;

    /**
     * 打款成功后异步通知地址
     */
    @ApiModelProperty(value = "打款成功后异步通知地址", notes = "打款成功后异步通知地址", dataType = "String")
    private String notifyUrl;
}
